package com.learn.jms.spring;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;

import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;

/**
 * 《Spring源码深度解析》第13章 Spring消息
 * 发送端实现
 * ActiveMQ下载：http://activemq.apache.org/activemq-5015009-release
 * Windows系统下双击 /bin/win64/activemq.bat 启动消息服务器
 */
public class HelloWorldSender {
    public static void main(String[] args) {
		// 与 HelloWorldReciver 测试，先运行 HelloWorldSender 发送消息，再运行 HelloWorldReciver 接收消息
//        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext1.xml");

		// 使用 applicationContext2.xml 发送消息，测试“监听器”接收消息
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext2.xml");
        JmsTemplate jmsTemplate = (JmsTemplate) context.getBean("jmsTemplate");
        Destination destination =  (Destination) context.getBean("destination");

        jmsTemplate.send(destination, new MessageCreator() {
            @Override
            public Message createMessage(Session session) throws JMSException {
                return session.createTextMessage("大家好这个是测试！");
            }
        });
    }
	/* Output:
	Listener：大家好这个是测试！
	*///~
}
